PERSISTENCE: CHATGPT / CODEX SETUP

Download: persistence-chatgpt-skill.zip

CONTENTS
persistence/SKILL.md: converted instructions and host compatibility guidance
persistence/agents/openai.yaml: OpenAI display and invocation metadata
persistence/scripts/persistence.py: original harvesting script, unchanged
persistence/references/original-skill.txt: original instructions, verbatim

The source contained these two files only: SKILL.md and persistence.py. There
were no separate images, references, or other assets to migrate. The companion
persistence-conversion-audit.json records the source hashes and validation.

LOCAL CODEX
Extract the ZIP and copy the entire persistence folder into your project's
.agents/skills/ directory. The entrypoint must be:
.agents/skills/persistence/SKILL.md
Keep scripts, agents, and references beside it. Start a chat in the project and
invoke $persistence. Restart Codex if the skill does not appear.

CHATGPT
If your workspace provides skill import or a skill-creator workflow, provide
the ZIP and ask it to import the persistence folder with all supporting files.
Select Persistence with @ once available. Installation options depend on your
workspace. This package does not install or publish a plugin automatically.

For a per-chat fallback, attach the ZIP and your character image to a chat with
file access and say:
  Extract this ZIP, read persistence/SKILL.md, and use its workflow to prepare
  Clip A from my attached character image. I am using Seedance 2.5 and pasting
  directly into Venice.
This is conversation-scoped use, not persistent installation. If archive
extraction is unavailable, extract locally and attach the converted SKILL.md
and script separately. Actual harvesting also needs Python and ffmpeg tools.

FIRST RUN
1. Attach ONE character base image. Include a Prism Persistence queue entry
   if you have one. Name the character and specify Seedance 2.0 or 2.5 and
   whether you paste through Night Shift or directly into Venice.
2. Request Clip A. Example for Codex:
   Use $persistence with this character image and Prism queue entry. Prepare
   Clip A for Seedance 2.5, pasted directly into Venice.
3. Run the delivered prompt in your chosen generation service. The source
   workflow calls for 15 seconds, 3:4, 720p, reference-to-video, one image,
   audio on with near-silent sound. These settings remain as authored;
   current third-party service support was not independently verified.
4. Upload the generated Clip A video. Ask Persistence to harvest it, inspect
   the sheet, and then prepare Clip B from the harvested face frame.
5. Generate and upload Clip B. Ask Persistence to harvest and inspect the
   expression sheet. Keep all loose frames alongside both sheets.

DEPENDENCIES
Prompt writing requires image-reading support. Automated frame extraction
requires Python 3 plus ffmpeg and ffprobe on PATH. The Python script otherwise
uses only the standard library. Without those capabilities, the skill supplies
the original manual freeze-frame and 1080x1440 sheet instructions.
No API key, service integration, media generation, or paid usage is included.
Prism and host Seedance prompter skills are optional context, not requirements.

PRESERVED WORKFLOW
Clip A: five static, hard-cut views. Default four-up sheet uses front, back,
face, detail, with the side view retained separately.
Clip B: five expressions from Clip A's harvested face frame.
Both coverage prompts stay English-only and headerless, one fence per message.
Clips are frame sources only; sheets become scene identity references.

CONVERSION CLARIFICATIONS
The active entrypoint replaces Claude references with ChatGPT/Codex language
and scopes task-format precedence to host instruction boundaries. It explains
missing-file and no-execution handling, literal reference tokens, and download
presentation. It also documents two original script behaviors: contact frame
numbers are printed in terminal output rather than on thumbnails; identical
output names are overwritten. Separate folders are required for turnaround,
expressions, and revisions. The script itself remains byte-identical.

VALIDATION AND LIMITS
Verified archive integrity, byte-identical source preservation, Python syntax,
CLI help with all four subcommands, and basic manifest/reference structure.
Full clip processing was not tested: ffmpeg and ffprobe are unavailable here.
The bundled skill validator was not run because PyYAML is unavailable; basic
frontmatter and paths were checked separately. No generation was purchased,
external files uploaded, or skill installed into your account.

OFFICIAL FORMAT AND SETUP REFERENCE
https://learn.chatgpt.com/docs/build-skills
Consulted November 1, 2026. Documents the shared SKILL.md folder format,
project .agents/skills discovery, and @ / $ skill invocation.
